import request from '@/config/axios'

// 物资管理 -> 物资申请主 VO
export interface ResMaterialRequestVO {
  id: number // ID
  requestNo: string // 申请单号 (系统生成)
  eventId: number // 关联应急事件ID
  requestType: string // 申请类型 (EMERGENCY:应急申领, SCRAP:报废, REPLENISH:补货)
  applicantId: number // 申请人ID
  requestTime: Date // 申请时间
  status: number // 审批状态 (PENDING_LEADER, PENDING_MANAGER, REJECTED, APPROVED)
  processInstanceId: string // 流程编号
  currentApproverId: number // 当前审批人ID
  approvalHistory: string // 审批历史记录 (JSON格式)
  voucherUrl: string // 报废凭证URL (对接财政局后生成)
  resMaterialRequestDetails: ResMaterialRequestDetailVO[] // 物资申请详情
  remark: string // 备注
  startUserSelectAssignees: any // 指定审批人
}

// 物资管理 -> 物资申请详情 VO
export interface ResMaterialRequestDetailVO {
  id: number // ID
  requestId: number // 申请单ID
  materialId: number // 物资ID
  materialName: string // 物资名称
  materialType: string // 物资类型
  materialUnit: string // 物资单位
  materialQuantity: number // 物资数量
  materialPrice: number // 物资单价
  materialTotalPrice: number // 物资总价
  materialRemark: string // 物资备注
}

// 物资管理 -> 物资申请主 API
export const ResMaterialRequestApi = {
  // 查询物资管理 -> 物资申请主分页
  getResMaterialRequestPage: async (params: any) => {
    return await request.get({ url: `/wms/res-material-request/page`, params })
  },

  // 查询物资管理 -> 物资申请主详情
  getResMaterialRequest: async (id: number) => {
    return await request.get({ url: `/wms/res-material-request/get?id=${id}` })
  },

  // 新增物资管理 -> 物资申请主
  createResMaterialRequest: async (data: ResMaterialRequestVO) => {
    return await request.post({ url: `/wms/res-material-request/create`, data })
  },

  // 修改物资管理 -> 物资申请主
  updateResMaterialRequest: async (data: ResMaterialRequestVO) => {
    return await request.put({ url: `/wms/res-material-request/update`, data })
  },

  // 删除物资管理 -> 物资申请主
  deleteResMaterialRequest: async (id: number) => {
    return await request.delete({ url: `/wms/res-material-request/delete?id=${id}` })
  },

  // 导出物资管理 -> 物资申请主 Excel
  exportResMaterialRequest: async (params) => {
    return await request.download({ url: `/wms/res-material-request/export-excel`, params })
  },

  // ==================== 子表（物资管理-> 物资申请详情） ====================

  // 获得物资管理-> 物资申请详情列表
  getResMaterialRequestDetailListByRequestId: async (requestId) => {
    return await request.get({
      url:
        `/wms/res-material-request/res-material-request-detail/list-by-request-id?requestId=${
          requestId}`,
    })
  },
}
